import { Message } from "element-ui";
const rv = new Map();
// 限制点击的时间，以达到控制调后台的频率
export function checkReq(url, { time, limit, wait }) {
    return new Promise((rl, rj) => {
        let ele = rv.get(url);
        if (ele != undefined) {
            if (!ele.lock) {
                ele.endTime = new Date().getTime();
                if (ele.endTime - ele.startTime <= time) {
                    ele.useIndex++;
                    if (ele.useIndex > (limit - 1)) {
                        rj(false);
                        ele.lock = true;
                        Message({
                            type: "error",
                            message: "操作过于频繁，请稍后再试"
                        })
                        setTimeout(() => {
                            rv.delete(url)
                        }, wait)
                    }
                    rl(true)
                } else {
                    ele.startTime = ele.endTime;
                    rl(true);
                }
            } else {
                Message({
                    type: "error",
                    message: "操作过于频繁，请稍后再试"
                })
                rj(false);
            }
        } else {
            rv.set(url, {
                useIndex: 0,
                startTime: new Date().getTime(),
                endTime: new Date().getTime(),
                lock: false
            });
            rl(true);
        }
    });
}